package com.zmn.oms.dubbo.interfaces.normal.order;

import com.zmn.common.dto2.ResponseDTO;
import com.zmn.oms.common.dio.normal.acceptance.OrderAcceptanceDIO;
import com.zmn.oms.common.dro.normal.acceptance.OrderAcceptanceDRO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 类描述：
 *
 * @author wangxiaokun
 * @since 2021/09/23 14:20
 */
@Api(
        value = "订单验收",
        tags = {"订单验收"}
)
public interface OrderAcceptanceRemoteService {

    @ApiOperation(
            value = "获取单个验收内容",
            response = ResponseDTO.class,
            tags = {"订单验收"}
    )
    ResponseDTO<OrderAcceptanceDRO> getOrderWorkAcceptanceByAcceptanceIdAndOrderId(@NotNull(message = "入参不能为空")
                                                                                   @ApiParam(value = "验收id", required = true)
                                                                                           Long acceptanceId,
                                                                                   @NotNull(message = "入参不能为空")
                                                                                   @ApiParam(value = "订单id", required = true)
                                                                                           Long orderId);

    @ApiOperation(
            value = "获取多个验收内容",
            response = ResponseDTO.class,
            tags = {"订单验收"}
    )
    ResponseDTO<List<OrderAcceptanceDRO>> listOrderWorkAcceptanceByOrderId(@NotNull(message = "入参不能为空")
                                                                           @ApiParam(value = "验收id", required = true)
                                                                                   Long orderId,
                                                                           @NotNull(message = "入参不能为空")
                                                                           @ApiParam(value = "订单id", required = true)
                                                                                   Long workId);

    @ApiOperation(
            value = "订单验收操作",
            response = ResponseDTO.class,
            tags = {"订单验收"}
    )
    ResponseDTO modifyOrderWorkAcceptance(@NotNull(message = "入参不能为空") @ApiParam(value = "入参", required = true)
                                                  OrderAcceptanceDIO orderAcceptanceDIO);
}
